package main

import "fmt"

type FuncType func(int, int) int

// 回调函数，函数有一个参数是函数类型，这个函数就是回调函数
// 计算器，可以进行四则运算
// 多态，多种形态，调用同一个接口，不同的实现，可以实现不同的表现，加减乘除
// 现有想法，后面在实现
func Calc(a, b int, fTest FuncType) (result int) {
	fmt.Println("Calc")
	return fTest(a, b)
}

func Add(a, b int) int {
	return a + b
}

func Sub(a, b int) int {
	return a - b
}
func main() {
	a := Calc(10, 20, Add)
	fmt.Println("a=", a)
	b := Calc(10, 20, Sub)
	fmt.Println("b=", b)
}
